[−][src]Crate img_parts
img-parts
The img-parts
crate provides a low level api for reading and
writing containers from various image formats.
It currently supports Jpeg
,
Png
and RIFF
(with some helper functions for WebP
).
Reading and writing raw ICCP and EXIF metadata
use std::fs::{self, File}; use img_parts::jpeg::Jpeg; use img_parts::{ImageEXIF, ImageICC}; let input = fs::read("img.jpg")?; let output = File::create("out.jpg")?; let mut jpeg = Jpeg::from_bytes(input.into())?; let icc_profile = jpeg.icc_profile(); let exif_metadata = jpeg.exif(); jpeg.set_icc_profile(Some(another_icc_profile.into())); jpeg.set_exif(Some(new_exif_metadata.into())); jpeg.encoder().write_to(output)?;
Modifying chunks
use std::fs::{self, File}; use img_parts::jpeg::{markers, Jpeg, JpegSegment}; use img_parts::Bytes; let input = fs::read("img.jpg")?; let output = File::create("out.jpg")?; let mut jpeg = Jpeg::from_bytes(input.into())?; let comment = Bytes::from("Hello, I'm writing a comment!"); let comment_segment = JpegSegment::new_with_contents(markers::COM, comment); jpeg.segments_mut().insert(1, comment_segment); jpeg.encoder().write_to(output)?;
Modules
jpeg | |
png | |
riff | |
vp8 | |
webp |
Structs
Bytes | A reference counted contiguous slice of memory. |
ImageEncoder | An encoder for and image container or for an image chunk |
ImageEncoderReader | std A reader for |
Enums
DynImage | An enum wrapping the common functions shared by the different image formats |
Error | The Errors that may occur when processing an image. |
Traits
ImageEXIF | Trait to read and write the raw EXIF metadata for an image |
ImageICC | Trait to read and write the raw ICC Profile for an image |
Type Definitions
Result |